package com.itheima.health.config;

import com.itheima.health.job.ClearImgJob;
import lombok.extern.slf4j.Slf4j;
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Slf4j
@Configuration
public class QuartzConfig {

    // 创建一个封装Job对象的类型JobDetail
    // 使用@Bean注解标记的方法将这个对象保存到Spring容器
    @Bean
    public JobDetail clearImgJobDetail() {
        log.info("创建清理图片的 JobDetail");

        return JobBuilder
                .newJob(ClearImgJob.class)
                .withIdentity("clearImgJobDetail")
                .storeDurably()
                .build();
    }

    // 下面是触发器的声明,设置job的运行时机
    // 使用@Bean注解标记的方法将这个对象保存到Spring容器
    @Bean
    public Trigger clearImgTrigger() {
        log.info("创建清理图片的 Trigger");

        CronScheduleBuilder cron = CronScheduleBuilder.cronSchedule("0 0 2 * * ?"); // 每天凌晨2点执行

        return TriggerBuilder
                .newTrigger()
                .forJob(clearImgJobDetail())
                .withIdentity("clearImgTrigger")
                .withSchedule(cron)
                .build();
    }
}
